package com._9xcloud.leaverequest.service;

import com._9xcloud.leaverequest.domain.LeaveRequest;
import com._9xcloud.leaverequest.domain.LeaveRequestStatus;

import java.util.List;

/**
 * Created by Administrator on 2015/5/28.
 */
public interface LeaveRequestService {
    LeaveRequest create(int studentId, int lessonId, String reason);

    LeaveRequest audit(int teacherId, int leaveRequestId, boolean isAgreed, String comment);

    LeaveRequest getById(int leaveRequestId);

    void removeAll();

    List<LeaveRequest> getByStudentId(int studentId);
    List<LeaveRequest> getByStudentId(int studentId, LeaveRequestStatus status);

    List<LeaveRequest> getByLessonId(int lessonId);
    List<LeaveRequest> getByLessonId(int lessonId, LeaveRequestStatus status);

    List<LeaveRequest> getByClazzId(int clazzId);
    List<LeaveRequest> getByClazzId(int clazzId, LeaveRequestStatus status);

    List<LeaveRequest> getByCollegeId(int collegeId);
    List<LeaveRequest> getByCollegeId(int collegeId, LeaveRequestStatus status);

    List<LeaveRequest> getByCourseId(int courseId);
    List<LeaveRequest> getByCourseId(int courseId, LeaveRequestStatus status);

    List<LeaveRequest> getByTeacherId(int teacherId);

}
